package com.cta.service;

import java.util.List;

import com.cta.entity.TariffAreaCode;
import com.cta.entity.TariffGroup;
import com.cta.entity.TariffRecord;
import com.cta.exception.CTAServiceException;
import com.cta.view.controller.form.TariffAreaCodeForm;
import com.cta.view.controller.form.TariffGroupForm;
import com.cta.view.controller.form.TariffNode;

public interface TariffRecordService {
	
	public TariffRecord getTariffRecord(Long tariffId) ;
	
	public TariffRecord getTariffRecordWithDiscount(Long tariffId) ;
	
	public TariffGroup getTariffGroupWithDiscount(Long tariffGroupId) ;
	
	public TariffGroup getTariffGroupWithDiscountAndTariffRecord(Long tariffGroupId) ;
		
	public TariffRecord createTariffRecord(String name);
	
	public TariffRecord updateTariffRecord(Long id, String name)  throws CTAServiceException;
	
	public TariffRecord updateTariffRecord(TariffNode node)  throws Exception;
	
	public List<TariffRecord> listTariffRecord();
	
	public TariffGroup createTariffGroup(String name, Long tariffId);
	
	public List<TariffGroup> listAllTariffGroup(Long tariffId);
	
	public List<TariffAreaCode> listAllTariffAreaCode(List<Long> ids);
	
	public TariffAreaCode createTariffAreaCode(TariffAreaCodeForm areaCode);
	
	public TariffAreaCode cloneTariffAreaCode(Long areaCodeId);
	
	public TariffGroup updateTariffGroup(TariffGroupForm group) throws Exception ;
	
	public TariffAreaCode getTariffAreaCodeWithRate(Long tariffAreaCodeId) ;
	
	public TariffAreaCode updateTariffAreaCode(TariffAreaCodeForm areaCode) throws Exception ;
	
	public void deleteTariffRecord(Long id) ;
	
	public void deleteTariffGroup(Long id) ;
	
	public void deleteTariffAreaCode(Long id) ;
	
}
